package org.example.leetcode;

import javax.swing.plaf.synth.SynthOptionPaneUI;
import java.util.Stack;

/**
 * @version 1.0.0
 * @author: lynn
 * @description:有效的括号
 * @date: 2021/7/26 19:53
 */
public class LC20 {
    public static void main(String[] args) {
        LC20 lc=new LC20();
        System.out.println(lc.isValid("(]"));

    }
    //  '('，')'，'{'，'}'，'['，']'
    public boolean isValid(String s) {
        Stack<Character> stack=new Stack<>();
        for (int i = 0; i <s.length() ; i++) {
            if (s.charAt(i)=='('||s.charAt(i)=='{'||s.charAt(i)=='['){
                stack.push(s.charAt(i));
            }else{
                if (stack.size()==0){
                    return false;
                }else if (s.charAt(i)==')' && stack.peek()!='('){
                    return false;
                }else if (s.charAt(i)=='}' && stack.peek()!='{'){
                    return false;
                }else if (s.charAt(i)==']' && stack.peek()!='['){ //这个 [ 和 ] 顺序反了
                    return false;
                }
                stack.pop();
            }

        }
        return stack.size()==0?true:false;
    }
}
